/********************************************************************
* Copyright (c) 2013,TGS,All rights reserved.
* fileName:	DxfEntity.h	
* created:	2013/07/24 15:44

* version:	1.6
* detail: 
*********************************************************************/

#pragma once

#include <TGS/GeoMath2.0/Envelope.h>
#include <TGS/GeoMath2.0/Point.h>
#include <TGS/MapControl2.0/RenderContext.h>
#include <QString>
#include <QColor>


class DxfEntity
{
public:
	typedef TGS::MapControl::RenderContext RenderContext;
	typedef TGS::GeoMath::Envelope Envelope;
	typedef TGS::GeoMath::Point Point;
public:
	DxfEntity(void);
	virtual ~DxfEntity(void);
public:
	QString getLayerName() const { return _layerName; }
	void setLayerName(QString val) { _layerName = val; }
	QString getBlockName() const { return _blockName; }
	void setBlockName(QString val) { _blockName = val; }
	QColor getColor() const;
	void setColor(QColor val) { _color = val; }
	int getWidth() const { return _width; }
	void setWidth(int val) { _width = val; }
	bool isSpaceModel() const;
public:
	virtual Envelope getEnvelope() const = 0;
	virtual void render(RenderContext* renderContext) = 0;
	virtual void traslate(const Point& point) = 0;;
private:
	QString	_layerName;	
	QString _blockName;
	QColor	_color;	
	int		_width;
	
};

